home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
comm2
/
termsorc.lha
/
Extras
/
Source
/
gtlayout-source.lha
/
LT_Fixed.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-09-24
|
1KB
|
86 lines
/* GadTools layout toolkit
**
** Copyright © 1993-1995 by Olaf `Olsen' Barthel
** Freely distributable.
*/
#include "gtlayout_global.h"
#ifdef DO_FRACTION_KIND
VOID LIBENT
LT_Fixed2String(REG(d0) FIXED fixed,REG(d1) STRPTR buffer)
{
sprintf(buffer,"%ld%lc%ld",fixed / FIXED_UNITY,LTP_Locale ? LTP_Locale -> loc_DecimalPoint[0] : '.',fixed % FIXED_UNITY);
}
#endif
/*****************************************************************************/
#ifdef DO_FRACTION_KIND
FIXED LIBENT
LT_String2Fixed(REG(a0) STRPTR buffer)
{
UBYTE localBuffer[20];
UBYTE decimalPoint;
LONG i,left,right;
if(LTP_Locale)
decimalPoint = LTP_Locale -> loc_DecimalPoint[0];
else
decimalPoint = '.';
strcpy(localBuffer,buffer);
i = 0;
while(buffer[i])
{
if(localBuffer[i] == decimalPoint)
{
localBuffer[i] = 0;
if(i)
left = LTP_Atol(localBuffer);
else
left = 0;
if(localBuffer[i + 1])
{
UBYTE rest[4];
CopyMem(&localBuffer[i + 1],rest,3);
rest[3] = 0;
right = LTP_Atol(rest);
}
else
right = 0;
return((FIXED)(left * FIXED_UNITY + right));
}
i++;
}
left = LTP_Atol(localBuffer);
return((FIXED)(left * FIXED_UNITY));
}
#endif
/*****************************************************************************/
#ifdef DO_FRACTION_KIND
ULONG LIBENT
LT_FixedMult(REG(d0) FIXED fixed,REG(d1) ULONG factor)
{
return((fixed * factor) / FIXED_UNITY);
}
#endif